iT邦幫忙

2021 iThome 鐵人賽

DAY 3
1
AI & Data

[Computer Vision] 電腦視覺下的人臉系列 第 3

[Day3] 人臉偵測 (Face Detection)

  • 分享至 

  • xImage
  •  

小遊戲,威利在哪裡? (威利穿著紅白條紋的襯衫並戴著一個絨球帽,手上拿著木製的手杖,還戴著一副眼鏡)
Where's Waldo
reference: Amazon - Where's Waldo - Toys Poster 36 x 24in

本文開始

以目前主流隨安裝即用的技術來說,提到人臉偵測大多會出現下面四種方式:

  1. Google ML Kit - Face Detection
  2. Amazon Rekognition - face detection
  3. Microsoft Azure - 臉部識別API
  4. OpenCV & Dlib solution - 給喜愛DIY的寫手

下面就依序先簡單介紹各個技術使用吧!


Google ML Kit - Face Detection

face contours
reference: Google ML Kit - Face Detection

前身為Firebase ML-Kit - Face Detection (2020/6/3之後移動到獨立Module)

是一個Google開發的臉部識別函示庫,可以直接在行動裝置上使用,

可以在你開發的專案中整合臉部識別的相關功能:

  • 臉部偵測
  • 臉部識別
  • 人臉追蹤
  • 人臉關鍵點偵測

只需要了解如何使用相關API功能即可,不需要了解實作細節或ML如何運作。

這部分有興趣的邦友們可以在[Day5] Face Detection - 使用Google ML Kit - Android了解更多細節與實作內容。


Amazon Rekognition - face detection

beauty woman
reference: aws - Detecting and analyzing faces

Amazon在AWS平台上出的影像分析服務,除了與ML Kit一樣可以透過API使用外(需事先安裝SDK),
有另外提供Online Demo平台可以測試使用。

這部分我會在[Day7] Face Detection - 使用Amazon Rekognition說明更多細節與實作內容。


Microsoft Azure - 臉部識別API

看名字就知道,微軟出品,必屬精品

同樣是在他們自家的平台Azure上提供的臉部識別服務,同樣提供API方便使用

由於有其他邦友在這次鐵人賽發表Azure上的人臉辨識,有興趣的可以點連結去看一下。而臉部辨識的說明文件請參考這裡,就不再另撰一篇文章說明。

我絕對不會說是因為很久很久以前已註冊過Azure免費使用,因為不想付費所以沒有平台可以用來測試


OpenCV & Dlib Solution

OpenCV
reference: MLBLR - OpenCV

之後會著墨比較多的部分,也會延伸這個技術到後續開發一個真正互動的應用上。

OpenCV是一個跨平台的視覺處理函示庫,只要是處理影像或是影片,而主要開發語言又是C++或Python的話,對它一定不陌生。

而Dlib是由Davis King 獨立開發的一個ML相關處理與資料分析的C++函示庫,功能太多太強大說不完,而在人臉辨識相關功能中也會很常使用它。

使用OpenCV & Dlib來做人臉偵測,大概可以分為四種方式:

  1. OpenCV Haar cascades
  2. OpenCV deep neural networks (DNNs)
  3. Dlib HOG + Linear SVM
  4. Dlib max-margin object detector (MMOD)

這個系列後半部實作部分都會使用這種方式,我會在[Day9] Face Detection - 使用OpenCV & Dlib:Haar cascades之後說明更多細節與實作內容。


我知道一下出現陌生的函示庫名稱,一下又多出一堆專有名詞會讓人怯步,因此先來總結一下這四種方式:

opencv & dlib solution compare

三個重點需要你記得 (未來如果有進入這個領域會很實用,一點過來人經驗):

  1. 辨識準確率越高通常會需要花費更多運算時間 (指相同的硬體設備下);如果你會用顯示卡(GPU)資源來做ML請直接選第四個 (Dlib max-margin object detector (MMOD))
  2. 只想要試試水溫玩人臉偵測不想要知道細節也不想要設定一堆參數,用第二個 (OpenCV deep neural networks (DNNs))就對了;好用、好偵測、好刺激
  3. 有興趣要往facial landmark (人臉關鍵點)做應用的,請直接選第三或第四個(Dlib相關);你會發現什麼叫做真正的無縫接軌不踩坑

就這樣,下一篇見!


上一篇
[Day2] 電腦視覺下的人臉
下一篇
[Day4] Face Detection - 使用Google Cloud Vision API
系列文
[Computer Vision] 電腦視覺下的人臉30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言